Skip to content

feat(spec)!: prune dead ReportColumnSchema/ReportGroupingSchema exports + unread report chart groupBy (#3463)#3488

Merged
os-zhuang merged 1 commit into
mainfrom
chore/3463-prune-report-schemas
Jul 25, 2026
Merged

feat(spec)!: prune dead ReportColumnSchema/ReportGroupingSchema exports + unread report chart groupBy (#3463)#3488
os-zhuang merged 1 commit into
mainfrom
chore/3463-prune-report-schemas

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Closes #3463 (item 1 — the spec-side prune).

Context

Deep-cleanup close-out of the report-chart disposition (follow-up to #3441, umbrella #1878/#1890). After the ADR-0021 single-form cutover a dataset-bound report expresses columns/grouping as dataset measure/dimension name arrays (values/rows/columns = z.array(z.string())), so ReportColumnSchema / ReportGroupingSchema were referenced by no schema body — they survived only as public type exports and were marked @deprecated in #3441.

What changed

  • Removed ReportColumnSchema / ReportGroupingSchema and their type exports (ReportColumn / ReportGrouping / ReportColumnInput / ReportGroupingInput) from @objectstack/spec/ui; dropped the now-orphan ResponsiveConfigSchema import.
  • Removed ReportChart.groupBy — the [EXPERIMENTAL — not enforced] series-split field flagged in docs(spec): correct ReportChart xAxis/yAxis semantics; mark dead report surface (#1890) #3441. The dataset-bound DatasetReportRenderer plots a single xAxis×yAxis series and never read it; only the retired legacy ReportViewer fallback consumed a top-level groupBy. ReportChartSchema is non-strict, so residual chart.groupBy in stored metadata is silently stripped on parse — no tombstone needed.
  • Dropped manifest ratchet keys ui/ReportColumn / ui/ReportGrouping; regenerated content/docs/references/ui/report.mdx and the spec API-surface snapshot.

Breaking → ships as minor per the launch-window breaking-as-minor policy (precedent: remove-enable-trash-mru). The changeset carries the FROM→TO migration.

Migration

Nothing an author writes changes — no first-party or example report authored ReportColumn / ReportGrouping objects or chart.groupBy. TypeScript consumers importing the removed types from @objectstack/spec/ui have no replacement: model report columns as the dataset's measure names and grouping as its dimension names. The objectui SpecReportColumn* / SpecReportGrouping* re-exports are removed in the companion PR (objectstack-ai/objectui#chore/3463-retire-reportviewer-fallback).

Verification

  • @objectstack/spec build + 6857 tests pass; tsc --noEmit clean.
  • check:api-surface (6 exports removed, snapshot regenerated) ✓
  • check:docs (report.mdx regenerated, in sync) ✓
  • check:skill-refs / check:react-blocks in sync ✓
  • downstream-consumer-contract tsc --noEmit clean (the spec-break guard) ✓
  • turbo build across the cli dependency closure clean.

🤖 Generated with Claude Code

…ts + unread report chart groupBy (#3463)

Deep-cleanup close-out of the report-chart disposition (follow-up to #3441,
umbrella #1878/#1890). After the ADR-0021 single-form cutover a dataset-bound
report expresses columns/grouping as dataset measure/dimension name arrays
(`values`/`rows`/`columns` = `z.array(z.string())`), so ReportColumnSchema /
ReportGroupingSchema were referenced by no schema body — they survived only as
public type exports and were marked @deprecated in #3441.

- Remove ReportColumnSchema / ReportGroupingSchema and their type exports
  (ReportColumn / ReportGrouping / ReportColumnInput / ReportGroupingInput)
  from @objectstack/spec/ui; drop the now-orphan ResponsiveConfigSchema import.
- Remove ReportChart.groupBy — the [EXPERIMENTAL — not enforced] series-split
  field from #3441. The dataset-bound DatasetReportRenderer plots a single
  xAxis×yAxis series and never read it; only the retired legacy ReportViewer
  fallback consumed a top-level groupBy. ReportChartSchema is non-strict, so
  residual chart.groupBy in stored metadata is silently stripped on parse.
- Drop manifest ratchet keys ui/ReportColumn, ui/ReportGrouping; regenerate
  content/docs/references/ui/report.mdx and the spec API-surface snapshot.

No first-party or example report authored these objects or chart.groupBy.
Ships as minor per the launch-window breaking-as-minor policy; changeset
carries the FROM→TO migration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 25, 2026 3:20am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation protocol:ui tooling size/m labels Jul 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

104 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/spec)
  • content/docs/api/environment-routing.mdx (via @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/cli.mdx (via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation protocol:ui size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P3] Report: prune dangling ReportColumnSchema/ReportGroupingSchema exports + retire the legacy ReportViewer fallback

1 participant